1. Technical Field
The present disclosure relates to network protocol headers and, more specifically, to canonicalization of network protocol headers.
2. Discussion of Related Art
Network protocols such as Session Initiation Protocol (SIP) and Hypertext Transport Protocol (HTTP) were designed to allow for a great deal of flexibility in terms of how packets of data are formed. The order in which certain header fields may appear has no influence on the function of the packet. For example, each packet may have an order and format of protocol headers that may vary significantly without compromising the ability of diverse network devices to read and decode the packets of data. In a SIP packet, the “To:” and “From:” header fields can appear either with the “To:” before the “From:” or with the “From:” before the “To:”. The SIP header format also allows headers that list multiple data elements, for example, multiple servers along a route, to be represented either via a comma separated list following a single instance of the header field, or equivalently as multiple instances of the header field, each with one or more instances of data. This level of flexibility allows for new network devices to add and change packet header information without breaking compatibility with existing network devices.
While this level of flexibility has allowed network traffic technology to progress while maintaining some level of backwards compatibility and generally simplifies the generation of protocol headers, the enhanced flexibility does add to the computational burden of receiving network device that must parse the protocol headers of each packet. This complexity tends to make protocol header parsing a very CPU and memory intensive operation. This is because the algorithms that parse protocol headers must be more complex than if the exact format were to be known. The realities of modern network traffic greatly exacerbate this problem as emerging technologies such as voice over internet protocol (VoIP) demand nearly instantaneous processing of packets of data with significant payloads. In these and other applications, the burdens associated with parsing protocol headers may require increasingly sophisticated and expensive network hardware that is able to provide the needed CPU and memory resources. The great expense and sophistication of this equipment may hinder the adoption of new technologies such as VoIP and may therefore stifle further development.